package com.xique.park.bean.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xique.common.datascope.annotation.NeedSetDictParam;
import lombok.Data;
import com.xique.common.core.annotation.Excel;

import java.util.Date;
import java.util.List;

/**
 * 车辆管理类型对象 t_park_car_mngtype
 *
 * @author xique
 * @date 2021-12-09
 */
@Data
@TableName(value = "t_park_car_mngtype")
public class ParkCarMngtype {

    private static final long serialVersionUID = 1L;

    /**
     * 自动增量
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 车辆管理类型大类：车辆管理类型大类：1、固定车，2、登记临停车，3、邀请访客车，4、会员临停车，5、临停车
     */
    @Excel(name = "车辆管理类型大类：车辆管理类型大类：1、固定车，2、登记临停车，3、邀请访客车，4、会员临停车，5、临停车")
    private String mngType;

    @TableField(exist = false)
    @Excel(name = "车辆管理类型大类", readConverterExp = "1-固定车，2-登记临停车，3-邀请访客车，4-会员临停车，5-临停车")
    @NeedSetDictParam(dictType = "car_mng_type", dictValue = "mngType")
    private String mngTypeLable;

    /**
     * 停车场id
     */
    @Excel(name = "停车场id")
    private Long parkId;

    /**
     * （固定车用此字段，临停类因为分大小车，不用charge表中增加mng_type_id字段）计费规则表t_park_charge_car_**的id，根据大类判断id是哪个类型车的计费规则
     */
    @Excel(readConverterExp = "固定车用此字段，临停类因为分大小车，不用charge表中增加mng_type_id字段")
    private Long chargeId;

    /**
     * 车辆管理类型名称
     */
    @Excel(name = "车辆管理类型名称")
    private String name;

    /**
     * 是否计费：Y：是，N：否
     */
    @Excel(name = "是否计费：Y：是，N：否")
    private String isFee;

    /**
     * 是否设置有效期：Y：是，N：否
     */
    @Excel(name = "是否设置有效期：Y：是，N：否")
    private String isSetPeriod;

    /**
     * 超出有效期或有效次数是否删除车辆表记录：Y：是，N：否
     */
    @Excel(name = "超出有效期或有效次数是否删除车辆表记录：Y：是，N：否")
    private String isDelRecord;

    /**
     * 0-过期不计费，1-过期立即计费
     */
    @Excel(name = "0-过期不计费，1-过期立即计费")
    private String overdueProcessMode;

    /**
     * (弃用，charge表中增加字段)过期宽限天数
     */
    @Excel(name = "(弃用，charge表中增加字段)过期宽限天数")
    private Long overdueGraceDays;

    /**
     * 是否多位多车：Y：是，N：否
     */
    @Excel(name = "是否多位多车：Y：是，N：否")
    private String isMultSpaces;

    /**
     * 过期转临停计费ID
     */
    @Excel(name = "过期转临停计费ID")
    private Long tempChargeId;

    /**
     * 状态（normal-启用 pause-停用）
     */
    @Excel(name = "状态", readConverterExp = "n=ormal-启用,p=ause-停用")
    private String status;

    /**
     * 排序
     */
    @Excel(name = "排序")
    private Long sort;

    /**
     * 1-默认，2-自定义
     */
    @Excel(name = "1-默认，2-自定义")
    private String type;

    /**
     * 表记录的状态（normal-正常 delete-删除）
     */
    @Excel(name = "表记录的状态", readConverterExp = "n=ormal-正常,d=elete-删除")
    private String recordStatus;

    /**
     * 创建人
     */
    @Excel(name = "创建人")
    private Long createUser;

    /**
     * 更新人
     */
    @Excel(name = "更新人")
    private Long updateUser;

    /**
     * 邀请访客类型，用,分隔
     */
    @Excel(name = "邀请访客类型，用,分隔")
    private String isVisitor;

    /**
     * 该类型包含的车牌颜色，用,分隔
     */
    @Excel(name = "该类型包含的车牌颜色，用,分隔")
    private String plateColors;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     * 是否月临卡
     */
    private String isFixedTemp;

    /**
     * 月卡时段
     */
    private String fixedDuration;

    /**
     * 备注
     */
    private String remark;

    /**
     * 出场显示时长配置（1-总时长，2-外场时长，3-总时长，外场时长，4-总时长，内场时长）
     */
    private Integer stopTimeShowType;

    @TableField(exist = false)
    private List<Long> mngTypeIds;
}
